home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
PIE-USLM.ZIP
/
USER.PPE
(
.txt
)
< prev
Wrap
PCBoard Programming Language Executable
|
1996-05-17
|
9KB
|
571 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
String TSTRING001(23)
String STRING002
String STRING003
String STRING004
String TSTRING005(23)
String TSTRING006(4)
String TSTRING007(2)
String TSTRING008(2)
String TSTRING009(2)
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String TSTRING024(2)
String STRING025
String STRING026
String TSTRING027(3)
BigStr BIGSTR001
Declare Procedure PROC001()
Declare Procedure PROC003()
Declare Procedure PROC004()
Declare Procedure PROC005()
Declare Procedure PROC006()
;------------------------------------------------------------------------------
Delete PPEPath() + "user.dat"
Delete PPEPath() + "search.dat"
FCreate 2, PPEPath() + "search.dat", 1, 0
FCreate 1, PPEPath() + "user.dat", 1, 0
STRING010 = PPEPath() + "user.dat"
INTEGER006 = 0
STRING015 = FileInf(ReadLine(PCBDat(), 29), 4)
STRING014 = STRING015 / 400
PROC003()
End
;------------------------------------------------------------------------------
Procedure PROC003()
WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "Using MST User Lister", " "
Cls
STRING017 = Upper(ReadLine(PPEPath() + "user.cfg", 9))
TSTRING007(0) = "@X08"
TSTRING007(1) = "@X07"
TSTRING007(2) = "@X0F"
STRING011 = "NO"
TSTRING006(0) = "\"
TSTRING006(1) = "│"
TSTRING006(2) = "/"
TSTRING006(3) = "─"
STRING003 = "YES"
STRING004 = "NO"
PrintLn "@X08[@X07PIE@X08] @X0F/ @X07User Lister By Main Stream"
PrintLn "@X8F■@X07 Please Wait While Compiling List @X07[ @X0F%@X07]"
For INTEGER001 = 1 To 10000
GetAltUser INTEGER001
If (STRING017 == "NO") STRING018 = "N/A"
If (STRING017 == "YES") STRING018 = String(U_Sec)
If ((INTEGER001 * 100) / STRING014 < 10) AnsiPos 39, 2
If ((INTEGER001 * 100) / STRING014 >= 10) Then
AnsiPos 38, 2
Else
If ((INTEGER001 * 100) / STRING014 == 100) AnsiPos 37, 2
Endif
Print (INTEGER001 * 100) / STRING014
Inc INTEGER004
If (CurUser() == -1) Break
FPut 1, Left("@X08│ ", 6)
FPut 1, Left("@X0F", 4)
FPut 1, Left(Mixed(U_Name()), 25)
FPut 1, Left("@X08 │ ", 7)
FPut 1, Left("@X07", 4)
FPut 1, Left(U_City, 24)
FPut 1, Left("@X08 │ ", 7)
FPut 1, Left("@X08", 4)
FPut 1, Left(STRING018, 3)
FPut 1, Left(" │@X07 ", 7)
FPut 1, Left("@X0F", 4)
FPut 1, Left(U_LDate(), 8)
FPutLn 1, Left("@X08 │", 6)
Next
FPutLn 1, "END"
FClose 1
STRING014 = I2S(INTEGER001 - 1, 10)
Cls
TSTRING008(0) = ReadLine(PPEPath() + "TOP.PCB", 1)
TSTRING008(1) = ReadLine(PPEPath() + "TOP.PCB", 2)
TSTRING008(2) = ReadLine(PPEPath() + "TOP.PCB", 3)
TSTRING009(0) = ReadLine(PPEPath() + "BOT.PCB", 1)
TSTRING009(1) = ReadLine(PPEPath() + "BOT.PCB", 2)
TSTRING009(2) = ReadLine(PPEPath() + "BOT.PCB", 3)
For INTEGER001 = 0 To 2
AnsiPos 1, INTEGER001 + 1
Print TSTRING008(INTEGER001)
Next
For INTEGER001 = 0 To 2
AnsiPos 1, 21 + INTEGER001
Print TSTRING009(INTEGER001)
Next
INTEGER002 = 1
:LABEL001
STRING003 = "YES"
For INTEGER001 = 1 To 17
TSTRING001(INTEGER001) = ReadLine(STRING010, INTEGER001 + INTEGER002 - 1)
If (TSTRING001(INTEGER001) == "END") STRING003 = "NO"
If (INTEGER002 <> 1) STRING004 = "YES"
If (INTEGER002 == 1) STRING004 = "NO"
If (TSTRING001(INTEGER001) == "END") Then
INTEGER005 = INTEGER001 - 1
TSTRING001(INTEGER001) = "└─@X07─@X0F────────────────────────@X07E@X0F─@X07N@X0F─@X07D@X0F───@X07O@X0F─@X07F@X0F───@X07L@X0F─@X07i@X0F─@X07S@X0F─@X07T@X0F──────────────────────@X07─@X08─┘"
TSTRING001(INTEGER001 + 1) = " @X0F─@X07─@X08[@X0FTotal Users : " + STRING014 + "@X08]@X07─@X0F─ "
For INTEGER004 = INTEGER001 + 2 To 17
TSTRING001(INTEGER004) = " "
Next
INTEGER001 = 16
Break
Endif
Next
INTEGER003 = 4
For INTEGER001 = 1 To 17
AnsiPos 1, INTEGER003
Print " " + TSTRING001(INTEGER001)
Inc INTEGER003
Next
While (Upper(STRING002) <> "Q") Do
STRING002 = Inkey()
If ((STRING002 == "DOWN") && (STRING003 <> "NO")) Then
INTEGER002 = INTEGER002 + 17
Goto LABEL001
Endif
If ((STRING002 == "UP") && (STRING004 <> "NO")) Then
INTEGER002 = INTEGER002 - 17
Goto LABEL001
Endif
If (Upper(STRING002) == "L") Then
AnsiPos 1, 22
Print ReadLine(PPEPath() + "user.cfg", 5)
PROC001()
Endif
If (Upper(STRING002) == "S") Then
PROC006()
Goto LABEL001
Endif
If (Upper(STRING002) == "Q") Then
WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "Browsing Arround", " "
Print "@X0F"
Cls
Endif
EndWhile
EndProc
;------------------------------------------------------------------------------
Procedure PROC001()
String STRING019
String STRING020
String STRING021
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
STRING020 = ReadLine(PPEPath() + "user.cfg", 7)
STRING019 = "@X0F"
INTEGER007 = 4
INTEGER008 = 4
INTEGER010 = 1
AnsiPos INTEGER007, INTEGER008
Print STRING020 + StripAtx(TSTRING001(1))
While (STRING021 <> Chr(27)) Do
If (STRING003 == "YES") If ((STRING021 == "DOWN") && (INTEGER010 < 17)) INTEGER010 = INTEGER010 + 1
If (STRING003 == "NO") If ((STRING021 == "DOWN") && (INTEGER010 < INTEGER005)) INTEGER010 = INTEGER010 + 1
If ((STRING021 == "UP") && (INTEGER010 > 1)) INTEGER010 = INTEGER010 - 1
If (INTEGER007 - INTEGER009 + INTEGER010 <> INTEGER010) Then
If (STRING021 == "DOWN") Then
AnsiPos INTEGER007, INTEGER008 - 1 + INTEGER010 - 1
Print STRING019 + TSTRING001(INTEGER010 - 1)
AnsiPos INTEGER007, INTEGER008 - 1 + INTEGER010
Print STRING020 + StripAtx(TSTRING001(INTEGER010))
INTEGER009 = INTEGER010 + INTEGER007
Endif
If (STRING021 == "UP") Then
AnsiPos INTEGER007, INTEGER008 + INTEGER010
Print STRING019 + TSTRING001(INTEGER010 + 1)
AnsiPos INTEGER007, INTEGER008 + INTEGER010 - 1
Print STRING020 + StripAtx(TSTRING001(INTEGER010))
INTEGER009 = INTEGER010 + INTEGER007
Endif
Endif
STRING021 = Inkey()
INTEGER009 = INTEGER007 + INTEGER010
If (STRING021 == Chr(13)) Then
AnsiPos 1, 1
For INTEGER001 = 1 To 23
TSTRING005(INTEGER001) = ScrText(1, INTEGER001, 79, 1)
Next
STRING012 = ""
If (STRING011 == "NO") GetAltUser INTEGER002 + INTEGER010 - 1
If (STRING011 == "YES") Then
AnsiPos 1, 22
Print ReadLine(PPEPath() + "user.cfg", 6)
STRING013 = ScrText(6, INTEGER010 + INTEGER008 - 1, 24, 1)
STRING013 = StripAtx(STRING013)
For INTEGER001 = 1 To Len(STRING013)
STRING012 = STRING012 + Mid(STRING013, INTEGER001, 1)
If ((Mid(STRING013, INTEGER001 + 1, 1) == " ") && (Mid(STRING013, INTEGER001 + 2, 1) == " ")) Break
Next
For INTEGER001 = 1 To 10000
GetAltUser INTEGER001
If (U_Name() == Upper(STRING012)) Break
If (CurUser() == -1) Goto LABEL002
Next
Endif
Print "@X0F"
Cls
PROC004()
Cls
For INTEGER001 = 1 To 23
Print TSTRING005(INTEGER001)
AnsiPos 1, GetY() + 1
Next
Endif
EndWhile
:LABEL002
AnsiPos INTEGER007, INTEGER008 + INTEGER010 - 1
Print TSTRING001(INTEGER010)
AnsiPos 1, 22
Print TSTRING009(1)
EndProc
INTEGER011 = GetX()
INTEGER012 = GetY()
For INTEGER013 = 0 To 2
AnsiPos INTEGER011, INTEGER012
Print TSTRING007(INTEGER013) + ""
Delay 2
Next
EndProc
;------------------------------------------------------------------------------
Procedure PROC006()
String STRING022
String STRING023
String TSTRING024(2)
String STRING025
String STRING026
String TSTRING027(3)
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
FClose 2
STRING011 = "YES"
INTEGER014 = 0
INTEGER015 = 0
TSTRING027(0) = "─"
TSTRING027(1) = "\"
TSTRING027(2) = "│"
TSTRING027(3) = "/"
TSTRING024(0) = ReadLine(PPEPath() + "user.cfg", 4)
AnsiPos 1, 20
INTEGER016 = 21
INTEGER019 = ReadLine(PPEPath() + "user.cfg", 3)
AnsiPos 1, 22
Print ReadLine(PPEPath() + "user.cfg", 1)
AnsiPos ReadLine(PPEPath() + "user.cfg", 2), 22
While (STRING022 <> Chr(13)) Do
STRING022 = Inkey()
If (Len(STRING022) == 1) Then
If ((STRING022 == Chr(8)) && (STRING023 <> "")) Then
STRING023 = Left(STRING023, Len(STRING023) - 1)
Print Chr(8) + TSTRING024(0) + " "
AnsiPos GetX() - 1, GetY()
Continue
Endif
If ((Len(STRING023) <> INTEGER019) && (STRING022 <> Chr(8))) Then
If (STRING022 == Chr(32)) STRING022 = " "
If (STRING022 <> Chr(13)) STRING023 = STRING023 + STRING022
If (STRING022 == Chr(32)) Print TSTRING024(0) + " "
If (STRING022 <> Chr(32)) Print TSTRING024(0) + STRING022
Endif
Endif
EndWhile
STRING025 = ""
STRING026 = ""
INTEGER020 = 1
If (Len(STRING023) <> 0) Then
STRING010 = PPEPath() + "search.dat"
FCreate 2, PPEPath() + "search.dat", 1, 0
FSeek 2, 0, 0
For INTEGER018 = 1 To 10000
STRING025 = ""
STRING026 = ""
If ((INTEGER018 * 100) / STRING014 < 10) AnsiPos 75, 22
If ((INTEGER018 * 100) / STRING014 >= 10) Then
AnsiPos 74, 22
Goto LABEL003
Endif
If ((INTEGER018 * 100) / STRING014 == 100) AnsiPos 73, 22
:LABEL003
Print TSTRING024(0)
Print (INTEGER018 * 100) / STRING014
Print "%"
Inc INTEGER020
GetAltUser INTEGER018
If (STRING017 == "NO") STRING018 = "N/A"
If (STRING017 == "YES") STRING018 = String(U_Sec)
If (CurUser() == -1) Break
INTEGER017 = 1
While (Mid(U_Name(), INTEGER017, 1) <> Chr(32)) Do
STRING025 = STRING025 + Mid(U_Name(), INTEGER017, 1)
Inc INTEGER017
EndWhile
Inc INTEGER017
While (Mid(U_Name(), INTEGER017, 1) <> Chr(32)) Do
STRING026 = STRING026 + Mid(U_Name(), INTEGER017, 1)
Inc INTEGER017
EndWhile
If (((STRING025 == Upper(STRING023)) || (STRING026 == Upper(STRING023))) || (STRING025 + " " + STRING026 == Upper(STRING023))) Then
Inc INTEGER014
INTEGER015 = 1
FPut 2, Left("@X08│ ", 6)
FPut 2, Left("@X0F", 4)
FPut 2, Left(Mixed(U_Name()), 25)
FPut 2, Left("@X08 │ ", 7)
FPut 2, Left("@X07", 4)
FPut 2, Left(U_City, 24)
FPut 2, Left("@X08 │ ", 7)
FPut 2, Left("@X08", 4)
FPut 2, Left(STRING018, 3)
FPut 2, Left(" │@X07 ", 7)
FPut 2, Left("@X0F", 4)
FPut 2, Left(U_LDate(), 8)
FPutLn 2, Left("@X08 │", 6)
Endif
Next
If (INTEGER015 == 0) Then
AnsiPos 1, 22
Print ReadLine(PPEPath() + "user.cfg", 8)
STRING011 = "NO"
STRING010 = PPEPath() + "user.dat"
FClose 2
Delay 20
Goto LABEL004
Endif
AnsiPos 1, 22
Print TSTRING009(1)
FPutLn 2, "END"
FClose 2
AnsiPos 70, 22
INTEGER002 = 1
Endif
:LABEL004
AnsiPos 1, 22
Print TSTRING009(1)
EndProc
;------------------------------------------------------------------------------
Procedure PROC004()
BigStr BIGSTR001
Integer INTEGER021
BIGSTR001 = PPEPath() + "info.pcb"
STRING016 = ReadLine(BIGSTR001, INTEGER021)
INTEGER021 = 1
While (STRING016 <> "[EOF]") Do
STRING016 = ReadLine(BIGSTR001, INTEGER021)
If (STRING016 <> "[EOF]") PROC005()
If (STRING016 == "[EOF]") Break
Inc INTEGER021
EndWhile
Wait
EndProc
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
STRING016 = ReplaceStr(STRING016, "%USER%", U_Name())
STRING016 = ReplaceStr(STRING016, "%CITY%", U_City)
STRING016 = ReplaceStr(STRING016, "%SEC%", U_Sec)
STRING016 = ReplaceStr(STRING016, "%BUL%", U_Bul())
STRING016 = ReplaceStr(STRING016, "%BDL%", U_Bdl())
STRING016 = ReplaceStr(STRING016, "%FILEDN%", U_Fdl())
STRING016 = ReplaceStr(STRING016, "%FILEUP%", U_Ful())
STRING016 = ReplaceStr(STRING016, "%NUMTIMES%", U_Logons())
STRING016 = ReplaceStr(STRING016, "%LASTTIME%", U_LTime())
STRING016 = ReplaceStr(STRING016, "%LASTDATE%", U_LDate())
PrintLn STRING016
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 5 Cls
; 1 Wait
; 69 Goto
; 125 Let
; 27 Print
; 3 PrintLn
; 65 If
; 3 FCreate
; 4 FClose
; 24 FPut
; 4 FPutLn
; 2 Delete
; 2 Delay
; 8 Inc
; 2 WrUNet
; 29 AnsiPos
; 1 FSeek
; 4 GetAltUser
; 7 EndProc
;
;
; ■ Functions used :
;
; 3 -
; 8 *
; 9 /
; 78 +
; 16 -
; 39 ==
; 17 <>
; 16 <
; 12 <=
; 1 >
; 26 >=
; 37 !
; 32 &&
; 14 ||
; 6 Len(
; 9 Upper()
; 7 Mid()
; 27 Left()
; 12 Chr()
; 8 U_Name()
; 3 U_LDate()
; 1 U_LTime()
; 1 U_Logons()
; 1 U_Ful()
; 1 U_Fdl()
; 1 U_Bdl()
; 1 U_Bul()
; 4 StripAtx()
; 3 Inkey()
; 2 String()
; 1 PCBDat()
; 24 PPEPath()
; 2 PcbNode()
; 19 ReadLine()
; 2 UN_Name()
; 2 UN_City()
; 1 I2S()
; 2 GetX()
; 3 GetY()
; 1 FileInf()
; 2 ScrText()
; 10 ReplaceStr()
; 2 Mixed()
; 3 CurUser()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Rd
;
; R - Read user ■ 5
; User records are read, this may signify that someone wants to get
; various informations about a user (for example his password), but
; this may also be normal for a program accessing user records (for
; example a User Editor)
; ■ Search for : GETALTUSER
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 12 For/Next
; 6 While/EndWhile
; 19 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------